Bug 429427 – Add "arrow-spacing" style property to GtkRange
authorMatthias Clasen <mclasen@redhat.com>
Sat, 2 Aug 2008 04:52:54 +0000 (04:52 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Sat, 2 Aug 2008 04:52:54 +0000 (04:52 +0000)
2008-08-02  Matthias Clasen  <mclasen@redhat.com>

        Bug 429427 – Add "arrow-spacing" style property to GtkRange

        * gtk/gtkrange.c: Add an arrow-spacing style property.
        Patch by Carlos Garnacho and Christian Dywan

svn path=/trunk/; revision=20939

ChangeLog
gtk/gtkrange.c

index 0e0664b277acbcb1e4f0d047c6f0f70fda5ba4d2..648d579b9042b5e873dd0ba69c3db3aabdc9b944 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-08-02  Matthias Clasen  <mclasen@redhat.com>
+       
+       Bug 429427 – Add "arrow-spacing" style property to GtkRange
+
+       * gtk/gtkrange.c: Add an arrow-spacing style property.
+       Patch by Carlos Garnacho and Christian Dywan
+
 2008-08-02  Matthias Clasen  <mclasen@redhat.com>
 
        Bug 429411 – add style properties to set minimum progressbar 
index 32023ebaf6538721b040239bd9cfbcb29a55aa07..6d76c7e7a89cd5c210d8a14757264c09e917d606 100644 (file)
@@ -522,6 +522,20 @@ gtk_range_class_init (GtkRangeClass *class)
                                                                  TRUE,
                                                                  GTK_PARAM_READABLE));
 
+  /**
+   * GtkRange:arrow-scaling:
+   *
+   * The arrow size proportion relative to the scroll button size.
+   *
+   * Since: 2.14
+   */
+  gtk_widget_class_install_style_property (widget_class,
+                                           g_param_spec_float ("arrow-scaling",
+                                                              P_("Arrow scaling"),
+                                                              P_("Arrow scaling with regard to scroll button size"),
+                                                              0.0, 1.0, 0.5,
+                                                              GTK_PARAM_READABLE));
+
   g_type_class_add_private (class, sizeof (GtkRangeLayout));
 }
 
@@ -1324,6 +1338,7 @@ draw_stepper (GtkRange     *range,
   GtkShadowType shadow_type;
   GdkRectangle intersection;
   GtkWidget *widget = GTK_WIDGET (range);
+  gfloat arrow_scaling;
 
   gint arrow_x;
   gint arrow_y;
@@ -1375,11 +1390,13 @@ draw_stepper (GtkRange     *range,
                 rect->width,
                 rect->height);
 
-  arrow_width = rect->width / 2;
-  arrow_height = rect->height / 2;
+  gtk_widget_style_get (widget, "arrow-scaling", &arrow_scaling, NULL);
+
+  arrow_width = rect->width * arrow_scaling;
+  arrow_height = rect->height * arrow_scaling;
   arrow_x = widget->allocation.x + rect->x + (rect->width - arrow_width) / 2;
   arrow_y = widget->allocation.y + rect->y + (rect->height - arrow_height) / 2;
-  
+
   if (clicked && arrow_sensitive)
     {
       gint arrow_displacement_x;